﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BL;
using System.Data;
using SFsoftSite.Memberships;
using System.Web.Security;

namespace SFsoftSite.Jogos
{
    public partial class ComprarJogos : System.Web.UI.Page
    {
        #region Atributos

        BLJogos _jogos;
        BLCliente _cliente;

        #endregion

        #region Page Load

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                _jogos = new BLJogos();

                string t = Request.QueryString["Jogo"];

                if(t == string.Empty || t == null) return;
                
                int id = -1;
                try { id = Convert.ToInt32(t); } catch { };

                DataTable dt = _jogos.GetJogoById(id);

                if (dt.Rows.Count == 0) return;

                lblCategoria.Text = dt.Rows[0]["NomeCategoria"].ToString();
                lblDescricao.Text = dt.Rows[0]["DescricaoJogo"].ToString();
                lblPreco.Text = String.Format("{0:C}", dt.Rows[0]["PrecoJogo"].ToString());
                lblProdutora.Text = dt.Rows[0]["NomeProdutora"].ToString();
                lblTitulo.Text = dt.Rows[0]["NomeJogo"].ToString();
                imgJogo.Src = "../Resources/Images/Upload/Games/" + dt.Rows[0]["FotoJogo"];
                hf.Value = dt.Rows[0]["IDJogo"].ToString();
            }
        }

        #endregion

        #region Eventos

        protected void ComprarJogo(object sender, EventArgs e)
        {
            _cliente = new BLCliente();
            string mensagem = "";

            if (hf.Value == string.Empty)
            {
                mensagem = "Não é possível realizar a compra pois não existe nenhum jogo selecionado!";
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Mensagem", "alert(' " + mensagem + "')", true);
            }
            else
            {
                SFUserManager userM = (SFUserManager)Membership.Provider;

                SFUserInfo user = (SFUserInfo)userM.GetUser(HttpContext.Current.User.Identity.Name, true);

                if (user == null)
                {
                    mensagem = "Você precisa estar logado para realizar uma compra!";
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Mensagem", "alert(' " + mensagem + "')", true);
                }
                else
                {
                    
                    string erro = _cliente.ComprarJogo(user.ID, Convert.ToInt32(hf.Value));

                    if (erro != "")
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Mensagem", "alert(' " + erro + "')", true);
                    else
                    {
                        mensagem = "Parabéns! Você adquiriu o jogo " + lblTitulo.Text + ".";
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Mensagem", "alert(' " + mensagem + "')", true);
                    }
                }
            }
        }

        #endregion
    }
}